package com.hxkj.service;

import com.github.pagehelper.PageInfo;
import com.hxkj.domain.po.Column;
import com.hxkj.domain.po.ColumnTree;
import com.platform.common.domain.result.ResultMessageStruct;
import com.platform.common.domain.to.PageTo;

import java.util.List;
import java.util.Map;

/**
 * @InterfaceName ColumnService
 * @Description TODO
 * @Author Mr.zheng
 * @Date 2018/6/7 12:00
 * @Version 1.0
 */
public interface ColumnService {
    
    /**
    * @author Mr.zheng
    * @Description saveColumn 新增文章分类
    * @Date 15:24 2018/6/7
    **/
    Column saveColumn(Column column) throws Exception;

    /**
    * @author Mr.zheng
    * @Description getColumnTreeList 获取文章分类树结构
    * @Date 15:47 2018/6/7
    **/
    List<ColumnTree> getColumnTreeList(Column column) throws Exception;

    /**
    * @author Mr.zheng
    * @Description removerColumn 删除文章分类
    * @Date 16:04 2018/6/7
    **/
    void removeColumn(Column column) throws Exception;

    /**
    * @author Mr.zheng
    * @Description modifyColumn 修改文章分类
    * @Date 16:59 2018/6/7
    **/
    void modifyColumn(Column column) throws Exception;

    /**
     * @author Mr.zheng
     * @Description modifySortNum 增加文章分类排序
     * @Date 9:48 2018/6/8
     **/
    ResultMessageStruct modifySortNum(Map<String, Object> map) throws Exception;

   /**
   * @author Mr.zheng
   * @Description getChannelList 获取文章分类列表
   * @Date 10:08 2018/6/11
   **/
    PageInfo getColumnArticleList(Column column, PageTo pageTo) throws Exception;

    /**
     * @author Mr.zheng
     * @Description getShowColumnTreeList 获取文章分类树结构下拉框
     * @Date 15:47 2018/6/7
     **/
    List<ColumnTree> getShowColumnTreeList(Column column) throws Exception;

    /**
     * @author zzx
     * @Description getChildren  获取文章分类父类下所有得子类
     * @return
     **/
    List<Column> getChildren(Column column) throws Exception;

    /**
     * @author zzx
     * @Description 获取一条文章分类信息
     * @return
     **/
    Column getColumn(Column column) throws Exception;

    
    /**
    * @author Mr.zheng
    * @Description getColumnTreeListByKeyword 关键字搜索文章分类树结构
    * @Date 14:33 2018/7/5
    **/
    List<ColumnTree> getColumnTreeListByKeyword(Column column) throws Exception;

    /**
    * @author Mr.zheng
    * @Description getColumnListByTerms  根据条件获取分类列表
    * @Date 17:10 2018/7/10
    **/
    List<Column> getColumnListByTerms(Column column) throws Exception;

    Column getColumnByName(Column column);

    /**
     * 根据文章分类id获取该分类的最顶级分类对象
     */
    List<Column> getTopParentColumn(Column column) throws Exception;


    List<Column> getColumnList(Column column)throws Exception;

    /***
     * 获取该站点所有的column数据
     * **/
    List<Column> getAllColumnList(Column column) throws Exception;

    /**
     * 根据站点及模板id获取绑定的分类列表数据
     */
    List<Column> getColumnListByTempletIds(Column column) throws Exception;


    /**
     * @author Mr.zheng
     * @Description getColumnByTempletId 根据模板ID和站点ID去获取一条分类模拟数据
     * @Date 17:32 2018/8/16
     **/
    Column getColumnByTempletId(Column column) throws Exception;

    /**
    * @author Mr.zheng
    * @Description modifyTemptId 替换模板ID
    * @Date 20:39 2018/9/13
    **/
    void modifyTemptId(Column column) throws Exception;
}
